﻿//parser.h
#pragma once
#include "Base_Node.h"
#include "Lexer.h"
class Parser {
public:
	Base_Node* parse_expr(const char* strExpr);
private:
	std::string  exprText;  //存储表达式文本
	Lexer* theLexer; //词法分析器对象，用于下面三个函数
	Base_Node* expr(bool  get);
	Base_Node* term(bool  get);
	Base_Node* prim(bool  get);

};

struct Bad_Expr : public std::exception
{
	const char* what() const throw ()
	{
		return "Bad Expr";
	}
};
